/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package co.edu.uniminuto.Videominuto.bean;

import co.edu.uniminuto.Videominuto.entities.Cliente;
import co.edu.uniminuto.Videominuto.entities.Historial;
import co.edu.uniminuto.Videominuto.entities.Video;
import co.edu.uniminuto.Videominuto.ln.CatalogoCliente;
import co.edu.uniminuto.Videominuto.ln.CatalogoCompraAlguiler;
import java.util.Iterator;
import java.util.List;
import javax.ejb.EJB;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import javax.faces.bean.SessionScoped;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;
import javax.servlet.http.HttpSession;

/**
 *
 * @author JULIAN
 */
@ManagedBean
@RequestScoped
public class CompraBean {
    @EJB
    private CatalogoCliente catalogoCliente;
    @EJB
    private CatalogoCompraAlguiler catalogoCompraAlguiler;
    
    
    private Video video;
    private Cliente cliente;
    public CompraBean() {
                        }
    
    public String validaCompra(){
        FacesContext context = javax.faces.context.FacesContext.getCurrentInstance();
        HttpSession session = (HttpSession) context.getExternalContext().getSession(false);
        boolean existeCompra =false;
        UsuarioBean ubn = (UsuarioBean) session.getAttribute("usuarioBean");
        VideoBean vnb = (VideoBean) session.getAttribute("videoBean");
        
        cliente = ubn.getCliente();
        video =vnb.getVideo_1();
        video.getHistorialList();
        
        Historial existe = new Historial();
        List<Historial> listadoHistorial = cliente.getHistorialList();
       
        Iterator itr = null;
        itr=listadoHistorial.iterator();
       
        while(itr.hasNext()){
        existe=(Historial)itr.next();
            if(existe.getHistorialPK().getIsanVdi()==video.getIsanVideo()){
            existeCompra=true;
                break;
            }
                            }
        
        
        if(existeCompra==true){
        context.addMessage("formulario", new FacesMessage("Error: usted ya cuenta con este video en su catalogo"));         
        return ""; 
                                   }
        else if((cliente.getSaldo().compareTo(video.getPrecioCompra()))==-1){
        context.addMessage("formulario", new FacesMessage("Error: Saldo insuficente"));         
        return "";
        }

        else{
        return catalogoCompraAlguiler.procesaCompra(cliente,video);  
        } 
    }
    
}
